#pragma once
/*--------------------------------------------------------------------------------
 * Adaptive Intelligence - Foundation Framework Class Library
 * Version 2.00
 * 
 * Authentication Required Event Argument Class
 *      Provides an event arguments definition for authentication events.
 *------------------------------------------------------------------------------*/

/*--------------------------------------------------------------------------------
 * System Imports
 *------------------------------------------------------------------------------*/
#include "stdafx.h"

using namespace System;

namespace Adaptive
{
	namespace Foundation
	{
		namespace Security
		{
			/// <summary>
			/// Provides an event arguments definition for authentication events.
			/// </summary>
			public ref class AuthenticationRequiredEventArgs : public EventArgs
			{
			public:
				/*--------------------------------------------------------------------------------
				 * Constructor / Dispose / Destructor Methods
				 *------------------------------------------------------------------------------*/
				#pragma region Constructor / Dispose / Destructor Methods
				/// <summary>
				/// Initializes a new instance of the class.
				/// </summary>
				AuthenticationRequiredEventArgs();
				/// <summary>
				/// Class destructor.
				/// </summary>
				~AuthenticationRequiredEventArgs();
				#pragma endregion

				/*--------------------------------------------------------------------------------
				 * Public Properties
				 *------------------------------------------------------------------------------*/
				#pragma region Public Properties
				/// <summary>
				/// Gets or sets a value indicating whether to cancel the authentication operation.
				/// </summary>
				/// <value>
				/// <b>true</b> to cancel without authenticating; <b>false</b> to continue.
				/// </value>
				property bool Cancel { bool get(); void set( bool value ); }
				/// <summary>
				/// Gets or sets the required authentication password or key data.
				/// </summary>
				/// <value>
				/// A required password or other authentication data.
				/// </value>
				property String^ Password { String^ get(); void set( String^ value ); }
				#pragma endregion

			private:
				/*--------------------------------------------------------------------------------
				 * Private Member Declarations
				 *------------------------------------------------------------------------------*/
				#pragma region Private Member Declarations
			
				bool		_cancel;
				String^		_password;

				#pragma endregion
			};
		}
	}
}